home *** CD-ROM | disk | FTP | other *** search
/ L' Effet Pommier 3 / L'Effet Pommier - Volume 03.iso / Graphismes / 3D / POV-Ray 3.0B5a PPC / POV-Ray 3.0B5a / POVSCN.Scenes / POVSCN / LEVEL3 / CHESS.POV next >
Text File  |  1995-11-08  |  15KB  |  719 lines

  1. // Persistence Of Vision raytracer version 3.0 sample file.
  2. // POV-Ray scene description for chess board.
  3. // By Ville Saari
  4. // Copyright (c) 1991 Ferry Island Pixelboys
  5. //
  6. // This scene has 430 primitives in objects and 41 in bounding shapes and
  7. // it takes over 40 hours to render by standard amiga.
  8. //
  9. // If you do some nice modifications or additions to this file, please send
  10. // me a copy. My Internet address is:  vsaari@niksula.hut.fi
  11.  
  12. #version 3.0
  13. global_settings { assumed_gamma 2.2 }
  14.  
  15. #include "shapes.inc"
  16. #include "colors.inc"
  17. #include "textures.inc"
  18.  
  19. camera {
  20.    location <59, 20, -48>
  21.    direction <0, 0, 1>
  22.    up <0, 1, 0>
  23.    right <4/3, 0, 0>
  24.    look_at <0, 0, 1>
  25. }
  26.  
  27. light_source { <800, 600, -200> colour White }
  28.  
  29. #declare Pawn = union {
  30.    sphere { <0, 7, 0>, 1.5 }
  31.  
  32.    sphere { <0, 0, 0>, 1 
  33.       scale <1.2, 0.3, 1.2>
  34.       translate 5.5*y
  35.    }
  36.  
  37.    intersection {
  38.       plane { y, 5.5 }
  39.       object {
  40.          Hyperboloid_Y
  41.          translate 5*y
  42.          scale <0.5, 1, 0.5>
  43.       }
  44.       plane { -y, -2.5 }
  45.    }
  46.  
  47.    sphere { <0, 0, 0>, 1 
  48.       scale <2, 0.5, 2>
  49.       translate <0, 2.3, 0>
  50.    }
  51.  
  52.    intersection {
  53.       sphere { <0, 0, 0>, 2.5 }
  54.       plane { -y, 0 }
  55.    }
  56. }
  57.  
  58. #declare Rook = union {
  59.    intersection {
  60.       union {
  61.          plane { +x, -0.5 }
  62.          plane { -x, -0.5 }
  63.          plane { y, 9 }
  64.       }
  65.  
  66.       union {
  67.          plane { +z, -0.5 }
  68.          plane { -z, -0.5 }
  69.          plane { y, 9 }
  70.       }
  71.  
  72.       plane { y, 10 }
  73.       object { Cylinder_Y scale <2, 1, 2> }
  74.       object { Cylinder_Y scale <1.2, 1, 1.2> inverse }
  75.       plane { -y, -8 }
  76.    }
  77.  
  78.    intersection {
  79.       plane { y, 8 }
  80.       object { Hyperboloid_Y
  81.          scale <1, 1.5, 1>
  82.          translate 5.401924*y
  83.       }
  84.       plane { -y, -3 }
  85.    }
  86.  
  87.    sphere { <0, 0, 0>, 1 
  88.       scale <2.5, 0.5, 2.5>
  89.       translate 2.8*y
  90.    }
  91.  
  92.    intersection {
  93.       sphere { <0, 0, 0>, 3 }
  94.       plane { -y, 0 }
  95.    }
  96. }
  97.  
  98. #declare Knight = union {
  99.    intersection {
  100.       object { Cylinder_Z
  101.          scale <17.875, 17.875, 1>
  102.          translate <-18.625, 7, 0>
  103.          inverse
  104.       }
  105.  
  106.       object { Cylinder_Z
  107.          scale <17.875, 17.875, 1>
  108.          translate <18.625, 7, 0>
  109.          inverse
  110.       }
  111.  
  112.       object { Cylinder_X
  113.          scale <1, 5.1, 5.1>
  114.          translate <0, 11.2, -5>
  115.          inverse
  116.       }
  117.  
  118.       union {
  119.          plane { y, 0
  120.             rotate 30*x
  121.             translate 9.15*y
  122.          }
  123.          plane { z, 0
  124.             rotate -20*x
  125.             translate 10*y
  126.          }
  127.       }
  128.  
  129.       union {
  130.          plane { -y, 0
  131.             rotate 30*x
  132.             translate 7.15*y
  133.          }
  134.          plane { y, 0
  135.             rotate 60*x
  136.             translate 7.3*y
  137.          }
  138.       }
  139.  
  140.       union {
  141.          plane { y, 0
  142.             rotate -45*y
  143.          }
  144.          plane { y, 0
  145.             rotate 45*z
  146.          }
  147.          translate 9*y
  148.       }
  149.  
  150.       object { Cylinder_Y scale <2, 1, 2> }
  151.       sphere { <0, 7, 0>, 4 }
  152.    }
  153.  
  154.    sphere { <0, 0, 0>, 1 
  155.       scale <2.5, 0.5, 2.5>
  156.       translate <0, 2.8, 0>
  157.    }
  158.  
  159.    intersection {
  160.       sphere { <0, 0, 0>, 3 }
  161.       plane { -y, 0 }
  162.    }
  163. }
  164.  
  165. #declare Bishop = union {
  166.    sphere { <0, 10.8, 0>, 0.4 }
  167.  
  168.    intersection {
  169.       union {
  170.          plane { -z, -0.25 }
  171.          plane { +z, -0.25 }
  172.          plane { y, 0  }
  173.          rotate 30*x
  174.          translate 8.5*y
  175.       }
  176.  
  177.       sphere { <0, 0, 0>, 1 
  178.          scale <1.4, 2.1, 1.4>
  179.          translate 8.4*y
  180.       }
  181.  
  182.       plane { -y, -7 }
  183.    }
  184.  
  185.    sphere { <0, 0, 0>, 1 
  186.       scale <1.5, 0.4, 1.5>
  187.       translate 7*y
  188.    }
  189.  
  190.    intersection {
  191.       plane { y, 7 }
  192.       object {
  193.          Hyperboloid_Y
  194.          scale <0.6, 1.4, 0.6>
  195.          translate 7*y
  196.       }
  197.       plane { -y, -3 }
  198.    }
  199.  
  200.    sphere { <0, 0, 0>, 1 
  201.       scale <2.5, 0.5, 2.5>
  202.       translate 2.8*y
  203.    }
  204.  
  205.    intersection {
  206.       sphere { <0, 0, 0>, 3 }
  207.       plane { -y, 0 }
  208.    }
  209. }
  210.  
  211. #declare QueenAndKing = union {
  212.    sphere { <0, 10.5, 0>, 1.5 }
  213.  
  214.    intersection {
  215.       union {
  216.          sphere { <1.75, 12, 0>, 0.9  rotate 150*y }
  217.          sphere { <1.75, 12, 0>, 0.9  rotate 120*y }
  218.          sphere { <1.75, 12, 0>, 0.9  rotate 90*y }
  219.          sphere { <1.75, 12, 0>, 0.9  rotate 60*y }
  220.          sphere { <1.75, 12, 0>, 0.9  rotate 30*y }
  221.          sphere { <1.75, 12, 0>, 0.9  }
  222.          sphere { <1.75, 12, 0>, 0.9  rotate -30*y }
  223.          sphere { <1.75, 12, 0>, 0.9  rotate -60*y }
  224.          sphere { <1.75, 12, 0>, 0.9  rotate -90*y }
  225.          sphere { <1.75, 12, 0>, 0.9  rotate -120*y }
  226.          sphere { <1.75, 12, 0>, 0.9  rotate -150*y }
  227.          sphere { <1.75, 12, 0>, 0.9  rotate  180*y }
  228.          inverse
  229.       }
  230.  
  231.       plane { y, 11.5 }
  232.  
  233.       object { QCone_Y
  234.          scale <1, 3, 1>
  235.          translate 5*y
  236.       }
  237.  
  238.       plane { -y, -8 }
  239.    }
  240.  
  241.    sphere { <0, 0, 0>, 1
  242.       scale <1.8, 0.4, 1.8>
  243.       translate 8*y
  244.    }
  245.  
  246.    intersection {
  247.       plane { y, 8 }
  248.       object { Hyperboloid_Y
  249.          scale <0.7, 1.6, 0.7>
  250.          translate 7*y
  251.       }
  252.       plane { -y, -3 }
  253.    }
  254.  
  255.    sphere { <0, 0, 0>, 1 
  256.       scale <2.5, 0.5, 2.5>
  257.       translate 2.8*y
  258.    }
  259.  
  260.    intersection {
  261.       sphere { <0, 0, 0>, 3 }
  262.       plane { <0, -1, 0>, 0 }
  263.    }
  264. }
  265.  
  266. #declare Queen = union {
  267.    sphere { <0, 12.3, 0>, 0.4 }
  268.    object { QueenAndKing }
  269. }
  270.  
  271. #declare King = union {
  272.    intersection {
  273.       union {
  274.          intersection {
  275.             plane { y, 13 }
  276.             plane { -y, -12.5 }
  277.          }
  278.  
  279.          intersection {
  280.             plane { +x, 0.25 }
  281.             plane { -x, 0.25 }
  282.          }
  283.       }
  284.  
  285.       plane { +z,  0.25 }
  286.       plane { -z,  0.25 }
  287.       plane { +x,  0.75 }
  288.       plane { -x,  0.75 }
  289.       plane { +y,  13.5  }
  290.       plane { -y,  -11.5  }
  291.    }
  292.  
  293.    object { QueenAndKing }
  294. }
  295.  
  296. #declare WWood = texture {
  297.    pigment {
  298.       wood
  299.       turbulence 0.1
  300.       colour_map {
  301.          [ 0.0 0.35 colour red 0.7  green 0.4
  302.                     colour red 0.7  green 0.4  ]
  303.          [ 0.35 1.0 colour red 0.95 green 0.62
  304.                     colour red 0.95 green 0.62 ]
  305.       }
  306.       scale <0.6, 1000.0, 0.6>
  307.       translate <200.0, 0.0, 100.0>
  308.    }
  309.    finish {
  310.       specular 1
  311.       roughness 0.02
  312.    }
  313. }
  314.  
  315. #declare BWood = texture {
  316.    pigment {
  317.       wood
  318.       turbulence 0.1
  319.       colour_map {
  320.          [ 0.0 0.55 colour red 0.45 green 0.25
  321.          colour red 0.45 green 0.25 ]
  322.          [ 0.55 1.0 colour red 0.30 green 0.16
  323.          colour red 0.30 green 0.16 ]
  324.       }
  325.       scale <0.6, 1000.0, 0.6>
  326.       translate <100.0, 0.0, -200.0>
  327.    }
  328.    finish {
  329.       specular 1
  330.       roughness 0.02
  331.    }
  332. }
  333.  
  334. #declare WPawn = object {
  335.    Pawn
  336.  
  337.    bounded_by { sphere { <0, 4, 0>, 4.72 } }
  338.  
  339.    texture {
  340.       WWood
  341.       pigment { quick_color red 0.95 green 0.62 }
  342.    }
  343. }
  344.  
  345. #declare BPawn = object {
  346.    Pawn
  347.  
  348.    bounded_by { sphere { <0, 4, 0>, 4.72 } }
  349.  
  350.    texture {
  351.       BWood
  352.       pigment { quick_color red 0.4 green 0.2 }
  353.    }
  354. }
  355.  
  356. #declare WRook = object {
  357.    Rook
  358.  
  359.    bounded_by { sphere { <0, 5, 0>, 5.831 } }
  360.  
  361.    texture {
  362.       WWood
  363.       pigment { quick_color red 0.95 green 0.62 }
  364.    }
  365. }
  366.  
  367. #declare BRook = object {
  368.    Rook
  369.  
  370.    bounded_by { sphere { <0, 5, 0>, 5.831 } }
  371.  
  372.    texture {
  373.       BWood
  374.       pigment { quick_color red 0.4 green 0.2 }
  375.    }
  376. }
  377.  
  378. #declare WKnight = object {
  379.    Knight
  380.  
  381.    bounded_by { sphere { <0, 5, 0>, 5.831 } }
  382.  
  383.    texture {
  384.       WWood
  385.       pigment { quick_color red 0.95 green 0.62 }
  386.    }
  387. }
  388.  
  389. #declare BKnight = object {
  390.    Knight
  391.    rotate 180*y
  392.  
  393.    bounded_by { sphere { <0, 5, 0>, 5.831 } }
  394.  
  395.    texture { 
  396.       BWood
  397.       pigment { quick_color red 0.4 green 0.2 }
  398.    }
  399. }
  400.  
  401. #declare WBishop = object {
  402.    Bishop
  403.  
  404.    bounded_by { sphere { <0, 5.5, 0>, 6.265 } }
  405.  
  406.    texture {
  407.       WWood
  408.       pigment { quick_color red 0.95 green 0.62 }
  409.    }
  410. }
  411.  
  412. #declare BBishop = object {
  413.    Bishop
  414.    rotate 180*y
  415.  
  416.    bounded_by { sphere { <0, 5.5 ,0>, 6.265 } }
  417.  
  418.    texture {
  419.       BWood
  420.       pigment { quick_color red 0.4 green 0.2 }
  421.    }
  422. }
  423.  
  424. #declare WQueen = object {
  425.    Queen
  426.  
  427.    bounded_by {
  428.       intersection {
  429.          sphere { <0, 6, 0>, 6.71 }
  430.          object { Cylinder_Y scale <3, 1, 3> }
  431.       }
  432.    }
  433.  
  434.    texture {
  435.       WWood
  436.       pigment { quick_color red 0.95 green 0.62 }
  437.    }
  438. }
  439.  
  440. #declare BQueen = object {
  441.    Queen
  442.  
  443.    bounded_by {
  444.       intersection {
  445.          sphere { <0, 6, 0>, 6.71 }
  446.          object { Cylinder_Y scale <3, 1, 3> }
  447.       }
  448.    }
  449.  
  450.    texture {
  451.       BWood
  452.       pigment { quick_color red 0.4 green 0.2 }
  453.    }
  454. }
  455.  
  456. #declare WKing = object {
  457.    King
  458.  
  459.    bounded_by {
  460.       intersection {
  461.          sphere { <0, 6.5, 0>, 7.16 }
  462.          object { Cylinder_Y scale <3, 1, 3> }
  463.       }
  464.    }
  465.  
  466.    texture {
  467.       WWood
  468.       pigment { quick_color red 0.95 green 0.62 }
  469.    }
  470. }
  471.  
  472. #declare BKing = object {
  473.    King
  474.  
  475.    bounded_by {
  476.       intersection {
  477.          sphere { <0, 6.5, 0>, 7.16 }
  478.          object { Cylinder_Y scale <3, 1, 3> }
  479.       }
  480.    }
  481.  
  482.    texture {
  483.       BWood
  484.       pigment { quick_color red 0.4 green 0.2 }
  485.    }
  486. }
  487.  
  488. /* Sky */
  489. sphere { <0, -39000, 0>, 40000
  490.    inverse
  491.  
  492.    pigment {
  493.       bozo
  494.       turbulence 0.6
  495.       colour_map {
  496.          [0 0.5 colour red 0.4 green 0.5 blue 1
  497.                 colour red 0.4 green 0.5 blue 1.0]
  498.          [0.5 0.7 colour red 0.4 green 0.5 blue 1
  499.                   colour red 1 green 1 blue 1.0]
  500.          [0.7 1 colour red 1 green 1 blue 1
  501.                 colour red 0.7 green 0.7 blue 0.7]
  502.       }
  503.       scale 500
  504.       quick_color red 0.4 green 0.5 blue 1
  505.    }
  506.    finish {
  507.       ambient 1
  508.       diffuse 0
  509.    }
  510. }
  511.  
  512. /* Ground */
  513. plane { y, -80
  514.    pigment { Green }
  515.    finish {
  516.       crand 0.05
  517.       ambient 0.5
  518.       diffuse 0.5
  519.    }
  520. }
  521.  
  522. #declare Frame = intersection {
  523.    plane { +y, -0.0001 }
  524.    plane { -y, 3 }
  525.    plane { -z, 35 }
  526.    plane { <-1, 0, 1>, 0 }
  527.    plane { < 1, 0, 1>, 0 }
  528. }
  529.  
  530. union {
  531.    union {
  532.       object {
  533.          union {
  534.             object { Frame }
  535.             object { Frame rotate 180*y }
  536.          }
  537.  
  538.          pigment {
  539.             wood
  540.             turbulence 0.3
  541.             scale <0.8, 1000, 0.8>
  542.             rotate -88*z
  543.             translate <200, 40, -20>
  544.             quick_color red 0.5 green 0.25
  545.          }
  546.          finish {
  547.             specular 1
  548.             roughness 0.02
  549.          }
  550.       } // object
  551.  
  552.       object {
  553.          union {
  554.             object { Frame rotate -90*y }
  555.             object { Frame rotate  90*y }
  556.          }
  557.  
  558.          pigment {
  559.             wood
  560.             turbulence 0.3
  561.             scale <0.8, 1000, 0.8>
  562.             rotate -91*x
  563.             translate <100, 30, 0>
  564.             quick_color red 0.5 green 0.25
  565.          }
  566.          finish {
  567.             specular 1
  568.             roughness 0.02
  569.          }
  570.       } // object
  571.  
  572.       /* Board */
  573.       intersection {
  574.          plane { +x, 32 }
  575.          plane { -x, 32 }
  576.          plane { +y, 0 }
  577.          plane { -y, 1 }
  578.          plane { +z, 32 }
  579.          plane { -z, 32 }
  580.  
  581.          texture {
  582.             tiles {
  583.                texture {
  584.                   pigment {
  585.                      marble
  586.                      turbulence 1.0
  587.                      colour_map {
  588.                         [0.0 0.7 colour White
  589.                                  colour White]
  590.                         [0.7 0.9 colour White
  591.                                  colour red 0.8 green 0.8 blue 0.8]
  592.                         [0.9 1.0 colour red 0.8 green 0.8 blue 0.8
  593.                                  colour red 0.5 green 0.5 blue 0.5]
  594.                      }
  595.                      scale <0.6, 1, 0.6>
  596.                      rotate -30*y
  597.                   }
  598.                   finish {
  599.                      specular 1
  600.                      roughness 0.02
  601.                      reflection 0.25
  602.                   }
  603.                } // texture
  604.                tile2
  605.                texture {
  606.                   pigment {
  607.                      granite
  608.                      scale <0.3, 1, 0.3>
  609.                      colour_map {
  610.                         [0 1 colour Black
  611.                              colour red 0.5 green 0.5 blue 0.5]
  612.                      }
  613.                   }
  614.                   finish {
  615.                      specular 1
  616.                      roughness 0.02
  617.                      reflection 0.25
  618.                   }
  619.                }
  620.             } // texture
  621.             scale <8, 1, 8>
  622.          } //texture
  623.       } // intersection
  624.  
  625.       /* Table */
  626.       union {
  627.          intersection {
  628.             plane { +y, -3 }
  629.             plane { -y,  8 }
  630.             sphere { <0, -5.5, 0>, 55 }
  631.          }
  632.  
  633.          intersection {
  634.             plane { y, -8 }
  635.             object {
  636.                Hyperboloid_Y
  637.                scale <10, 20, 10>
  638.                translate -20*y
  639.             }
  640.          }
  641.  
  642.          pigment {
  643.             granite
  644.             scale 6
  645.          }
  646.          finish {
  647.             specular 1
  648.             roughness 0.02
  649.             reflection 0.3
  650.          }
  651.       } // union
  652.  
  653.       bounded_by { plane { y, 0 } }
  654.    }
  655.  
  656.    union {
  657.       object { WPawn translate <-28, 0, -20> }
  658.       object { WPawn translate <-20, 0, -20> }
  659.       object { WPawn translate <-12, 0, -20> }
  660.       object { WPawn translate < -4, 0, -20> }
  661.       object { WPawn translate <  4, 0, -20> }
  662.       object { WPawn translate < 12, 0, -20> }
  663.       object { WPawn translate < 20, 0, -20> }
  664.       object { WPawn translate < 28, 0, -20> }
  665.  
  666.       object { WRook   translate <-28, 0, -28> }
  667.       object { WKnight translate <-20, 0, -28> }
  668.       object { WBishop translate <-12, 0, -28> }
  669.       object { WQueen  translate < -4, 0, -28> }
  670.       object { WKing   translate <  4, 0, -28> }
  671.       object { WBishop translate < 12, 0, -28> }
  672.       object { WKnight translate < 20, 0, -28> }
  673.       object { WRook   translate < 28, 0, -28> }
  674.  
  675.       bounded_by {
  676.          object {
  677.             Cylinder_X
  678.             scale <1, 9.56, 9.56>
  679.             translate <0, 6.5, -24>
  680.          }
  681.       }
  682.    }
  683.  
  684.    union {
  685.       object { BPawn translate <-28, 0, 20> }
  686.       object { BPawn translate <-20, 0, 20> }
  687.       object { BPawn translate <-12, 0, 20> }
  688.       object { BPawn translate < -4, 0, 20> }
  689.       object { BPawn translate <  4, 0, 20> }
  690.       object { BPawn translate < 12, 0, 20> }
  691.       object { BPawn translate < 20, 0, 20> }
  692.       object { BPawn translate < 28, 0, 20> }
  693.  
  694.       object { BRook   translate <-28, 0, 28> }
  695.       object { BKnight translate <-20, 0, 28> }
  696.       object { BBishop translate <-12, 0, 28> }
  697.       object { BQueen  translate < -4, 0, 28> }
  698.       object { BKing   translate <  4, 0, 28> }
  699.       object { BBishop translate < 12, 0, 28> }
  700.       object { BKnight translate < 20, 0, 28> }
  701.       object { BRook   translate < 28, 0, 28> }
  702.  
  703.       bounded_by {
  704.          object {
  705.             Cylinder_X
  706.             scale <1, 9.56, 9.56>
  707.             translate <0, 6.5, 24>
  708.          }
  709.       }
  710.    }
  711.  
  712.    bounded_by {
  713.       intersection {
  714.          plane { y, 13.5 }
  715.          sphere { -30*y, 63 }
  716.       }
  717.    }
  718. }
  719.